package com.zhangye.test.controller;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSON;
import com.zhangye.test.model.ArRecommend;
import com.zhangye.test.model.EasyAr;
import com.zhangye.test.model.Region;
import com.zhangye.test.util.PageInfo;
import com.zhangye.test.util.Result;


/**
 * 推荐
 * 作者： 张叶
 * 创建时间：2018年10月26日  下午4:56:57
 */
@Controller
@RequestMapping("admin/arRecommend")
public class ArRecommendController extends BaseController{
	
	
	/**
	 * 列表
	 * 作者： 张叶
	 * 创建时间：2018年10月23日  上午9:21:07
	 */
	@RequestMapping("list")
	public String list(Model model){
		List<Region> listR = regionService.selectByWhere(" and level = 1");
		model.addAttribute("Region",listR);
		return "admin/arRecommend/list";
	}
 
	
	/**
	 * 分页显示 
	 * 作者：张叶
	 * 时间：2016年9月7日 上午11:58:15
	 */
	@ResponseBody
	@RequestMapping("arRecommendJson")
	public JSON adminJson(PageInfo pageInfo, Integer rows, Integer page,
			String sidx, String sord, Model model, String regionCode) {
		// 分页信息
		if (pageInfo == null) {
			pageInfo = new PageInfo();
		}
		if (pageInfo.getPage() < 2
				|| pageInfo.getPage() >= pageInfo.getTotalPage()) {
			pageInfo.setCount(0);
		}
		if (rows != null) {// 每页显示条数
			pageInfo.setPageSize(rows);
		}
		if (page != null) {// 当前页
			pageInfo.setPage(page);
		}

		// 排序
		String order = " order by created_at desc";
		if (sidx != null && sidx != "") {// 排序字段
			order = " order by " + sidx + " ";
			if (sord != null && sord != "") {// 排序
				order += sord;
			}
		}
		String where = "1 = 1";
		if(regionCode != null && !"".equals(regionCode)){
			where += " and ar.region_code like'" + regionCode + "%'";
		}

		List<Map<String, Object>> list = arRecommendService.selectByPage(pageInfo,where, order);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		for (int i = 0; i < list.size(); i++) {
			Date createTime = (Date) list.get(i).get("created_at");
			list.get(i).put("created_at", sdf.format(createTime));
		}
		Map<String, Object> data = new HashMap<String, Object>();
		data.put("total", pageInfo.getTotalPage());
		data.put("list", list);
		return (JSON) JSON.toJSON(data);
	}
	
	
	/**
	 * 删除
	 * 作者： 张叶
	 * 创建时间：2018年5月16日  上午9:57:52
	 */
	@ResponseBody
	@RequestMapping(value = "/delArRecommend/{id}", method = RequestMethod.POST)
	public Result delArRecommend(@PathVariable Long id){
		Result result = new Result();
		if(id != null && !"".equals(id)){
			int i = arRecommendService.deleted(id);
			if(i > 0){
				result.code = 0;
				result.message = "取消推荐成功";
			}else{
				result.code = 1;
				result.message = "系统错误，取消推荐失败";
			}
		}
		return result;
	}
	
	
	/**
	 * 设置推荐页面
	 * 作者： 张叶
	 * 创建时间：2018年10月30日  上午10:07:09
	 */
	@RequestMapping(value = "/updateRecommendPage/{id}")
	public String updateRecommendPage(@PathVariable("id") Long id,Model model){
		EasyAr ea= easyArService.selectByPrimaryKey(id);
		List<Region> list = regionService.selectByWhere(" and level = 1");
		model.addAttribute("regionList",list);
		model.addAttribute("ea",ea);
		return "admin/arRecommend/updateRecommend";
		
	}

	
	/**
	 * 设置推荐
	 * 作者： 张叶
	 * 创建时间：2018年10月30日  上午10:07:09
	 */
	@ResponseBody
	@RequestMapping(value = "/updateRecommend")
	public Result updateRecommend(Long easyArId,String regionCode){
		Result result = new Result();
		if(easyArId != null && !"".equals(easyArId)
				&& regionCode != null && !"".equals(regionCode)){
			EasyAr ea= easyArService.selectByPrimaryKey(easyArId);
			ArRecommend ar = new ArRecommend();
			ar.setEasyArId(ea.getId());
			ar.setCreatedAt(new Date());
			String where = " and easy_ar_id = " + easyArId + " and region_code = '" + regionCode + "'";
			List<ArRecommend> list = arRecommendService.selectByWhere(where);
			if(list.size() == 0){
				if(!"0".equals(regionCode)){
					Region region = regionService.getRegionByCode(regionCode);
					if(ea != null && region != null){
						ar.setRegionId(region.getId());
						ar.setRegionCode(region.getCode());
						ar.setRegionName(region.getTitle());
					}else{
						result.code = 4;
						result.message = "此记录或已被删除，请刷新后重试";
						return result;
					}
				}else{
					ar.setRegionId(0L);
					ar.setRegionCode("0");
					ar.setRegionName("全国");
				}
				int i = arRecommendService.insert(ar);
				if(i > 0){
					result.code = 0;
					result.message = "操作成功";
				}else{
					result.code = 1;
					result.message = "系统错误，操作失败";
				}
			}else{
				result.code = 0;
				result.message = "操作成功";
			}
		}else{
			result.code = 3;
			result.message = "参数不能为空";
		}
		return result;
	}
}
